//获取应用实例
const app = getApp()
Page({
  /**
   * 页面的初始数据
   */
  data: {
    //通过APP传递过来的参数
    pageProp: {
      href: "http://www.baidu.com",
      StoreOwnerId: "14",
      MessageId: "27"
    },
    //用户信息
    userInfo: {},
    //Code2Session
    Code2Session: null,
    //是否获取用户信息
    hasUserInfo: false,
    //手机号
    phone: null,
    //版本是否可以获权限
    canIUse: wx.canIUse('button.open-type.getUserInfo')
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //是否存在页面传参
    // if (Object.keys(options).length > 0) {
    //   console.log("options:" + JSON.stringify(options));
    //   //赋值页面参数传参
    //   this.setData({
    //     pageProp: options
    //   });
    // }
    //获取 openId等
    // this.GetCode2Session();
    //获取用户信息
    // this.getUser();
  },


  //获取GetCode2Session
  GetCode2Session: function () {
    if (app.globalData.code2Session) {
      //赋值Code2Session
      this.setData({
        Code2Session: app.globalData.code2Session
      })
    } else {
      // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.code2SessionReadyCallback = res => {
        //赋值
        this.setData({
          Code2Session: res.data
        })
      }
    }
  },

  //获取用户信息
  getUser: function () {
    if (app.globalData.userInfo) {
      //用户赋值
      this.setUserData(app.globalData.userInfo);

    } else if (this.data.canIUse) {
      // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.userInfoReadyCallback = res => {
        //用户赋值
        this.setUserData(res.userInfo);
      }
    } else {
      // 在没有 open-type=getUserInfo 版本的兼容处理
      wx.getUserInfo({
        success: res => {
          app.globalData.userInfo = res.userInfo
          //用户赋值
          this.setUserData(res.userInfo);
        }
      });
    }
  },
  // //是否采集完毕
  // isShow:function(){
  //   ["hasUserInfo", "phone"].every(function (item) {
  //     return this[item];
  //   }, this);
  // },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },


  //解析手机号
  getPhoneNumber: function (e) {
    var self = this;
    console.log(e);

    /**/
    // wx.showModal({
    //   title: "getPhoneNumber_Begin",
    //   content: JSON.stringify(e),
    //   showCancel: false
    // })

    //调用接口解析 phone
    app.request({
      url: app.globalData.InterfaceDomain + "/wx/getWxPhone",
      method: "post",
      data: {
        encryptedData: e.detail.encryptedData,
        iv: e.detail.iv,
        session_key: self.data.Code2Session.session_key
      },
      success(res) {

        /**/
        // wx.showModal({
        //   title: "getPhoneNumber_End",
        //   content: JSON.stringify(res),
        //   showCancel: false
        // })

        //保存手机号        
        self.setData({
          phone: res.data.phoneNumber
        })
        //采集数据入库
        self.AddCustomer();
      }
    });
  },
  //采集数据入库
  AddCustomer: function () {
    console.log("AddCustomer:" + JSON.stringify(this.data));
    //调用接口解析 phone
    app.request({
      url: app.globalData.InterfaceDomain + "/wx/addapplog",
      method: "post",
      data: {
        jsonStr: JSON.stringify({
          StoreOwnerId: this.data.pageProp.StoreOwnerId,
          OpenId: this.data.Code2Session.openid,
          WeChatName: this.data.userInfo.nickName,
          Headportrait: this.data.userInfo.avatarUrl,
          Sex: this.data.userInfo.gender,
          Phone: this.data.phone,
          WeChatCountry: this.data.userInfo.country,
          WeChatProvince: this.data.userInfo.province,
          WeChatCity: this.data.userInfo.city,
          TargetPerson: "2",
          //OperateType: "2",
          MessageId: this.data.pageProp.MessageId
        })
      },
      success(res) {
        console.log("AddCustomer_res" + JSON.stringify(res));

      }
    });
  },
  //用户信息赋值
  setUserData: function (userInfo) {
    this.setData({
      userInfo: userInfo,
      hasUserInfo: true
    })
  },
  //获取用户信息
  getUserInfo: function (e) {
    console.log(e)
    app.globalData.userInfo = e.detail.userInfo
    //赋值
    this.setUserData(e.detail.userInfo);
    // this.setData({
    //   userInfo: e.detail.userInfo,
    //   hasUserInfo: true
    // })
  }
})